home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #14 / Monster Media No. 14 (April 1996) (Monster Media, Inc.).ISO / pcboard / vwinfo1.zip / VWINFO.PPE (.txt) < prev   
PCBoard Programming Language Executable  |  1996-02-12  |  8KB  |  467 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.2O (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Boolean  BOOLEAN002
  21.     Boolean  BOOLEAN003
  22.     Date     DATE001
  23.     Integer  INTEGER001
  24.     Integer  INTEGER002
  25.     Integer  INTEGER003
  26.     Integer  INTEGER004
  27.     Integer  INTEGER005
  28.     Integer  INTEGER006
  29.     Integer  INTEGER007
  30.     Integer  INTEGER008
  31.     Integer  INTEGER009
  32.     Integer  INTEGER010
  33.     Integer  INTEGER011
  34.     Integer  INTEGER012
  35.     Integer  INTEGER013
  36.     Integer  INTEGER014
  37.     Integer  INTEGER015
  38.     Integer  INTEGER016
  39.     Integer  INTEGER017
  40.     Integer  INTEGER018
  41.     Integer  TINTEGER019(100)
  42.     Integer  INTEGER020
  43.     Integer  INTEGER021
  44.     Integer  INTEGER022
  45.     Integer  TINTEGER023(100)
  46.     Integer  INTEGER024
  47.     Integer  INTEGER025
  48.     Integer  INTEGER026
  49.     Integer  INTEGER027
  50.     Integer  INTEGER028
  51.     Integer  INTEGER029
  52.     Integer  INTEGER030
  53.     String   STRING001
  54.     String   STRING002
  55.     String   STRING003
  56.     String   STRING004
  57.     String   STRING005
  58.     String   STRING006
  59.     String   STRING007
  60.     String   STRING008
  61.     String   STRING009
  62.     String   STRING010
  63.     String   STRING011
  64.     String   TSTRING012(50)
  65.     String   TSTRING013(50)
  66.     String   STRING014
  67.     String   STRING015
  68.     String   STRING016
  69.     String   STRING017
  70.     String   STRING018
  71.     String   STRING019
  72.     String   STRING020
  73.     String   STRING021
  74.     String   STRING022
  75.     String   STRING023
  76.     String   STRING024
  77.     String   STRING025
  78.     String   STRING026
  79.     Declare  Procedure PROC001()
  80.     Declare  Procedure PROC002()
  81.     Declare  Procedure PROC003()
  82.     Declare  Procedure PROC004()
  83.     Declare  Procedure PROC005()
  84.  
  85. ;------------------------------------------------------------------------------
  86.  
  87.     Delete PPEPath() + "HOLD2.TXT"
  88.     Delete PPEPath() + "holdmsg.txt"
  89.     BOOLEAN003 = 0
  90.     FOpen 2, PPEPath() + "HOLD2.txt", 2, 0
  91.     FOpen 3, PPEPath() + "info.cfg", 2, 0
  92.     FGet 3, STRING010
  93.     INTEGER028 = InStr(STRING010, ";")
  94.     STRING010 = Left(STRING010, INTEGER028 - 1)
  95.     STRING010 = RTrim(STRING010, " ")
  96.     FGet 3, STRING011
  97.     INTEGER028 = InStr(STRING011, ";")
  98.     STRING011 = Left(STRING011, INTEGER028 - 1)
  99.     STRING011 = RTrim(STRING011, " ")
  100.     FGet 3, STRING018
  101.     INTEGER028 = InStr(STRING018, ";")
  102.     STRING018 = Left(STRING018, INTEGER028 - 1)
  103.     STRING018 = RTrim(STRING018, " ")
  104.     PROC005()
  105.     If (BOOLEAN003) Goto LABEL001
  106.     STRING007 = "■ VW-INFOSERVE V 1.00 @X0CUNREGISTERED @X07■ "
  107.     Goto LABEL002
  108.     :LABEL001
  109.     STRING007 = "■ VW-INFOSERVE V 1.00 R ■  "
  110.     :LABEL002
  111.     FGet 3, STRING001
  112.     INTEGER028 = InStr(STRING001, ";")
  113.     STRING001 = Left(STRING001, INTEGER028 - 1)
  114.     STRING001 = RTrim(STRING001, " ")
  115.     If (BOOLEAN003) Then
  116.         PrintLn "@X0A**** " + STRING001 + "  is working for you ****@X07"
  117.         Delay 10
  118.     Else
  119.         PrintLn "@X8C**** This is an unregestered copy !!! Please register. ****@X07 "
  120.         Delay 200
  121.     Endif
  122.     FGet 3, INTEGER030
  123.     DATE001 = 0
  124.     If (INTEGER030 <> 0) DATE001 = Date() + INTEGER030
  125.     FGet 3, STRING009
  126.     STRING009 = Left(STRING009, 1)
  127.     BOOLEAN002 = 0
  128.     If (STRING009 == "Y") BOOLEAN002 = 1
  129.     FGet 3, STRING008
  130.     FOpen 5, PPEPath() + "temp1.txt", 2, 0
  131.     FPutLn 5, " "
  132.     FPutLn 5, " "
  133.     INTEGER028 = InStr(STRING008, ";")
  134.     STRING008 = Left(STRING008, INTEGER028 - 1)
  135.     FPutLn 5, STRING007 + STRING008
  136.     FPutLn 5, ""
  137.     FClose 5
  138.     FOpen 7, PPEPath() + "LMSGR.TXT", 2, 0
  139.     For INTEGER028 = 0 To 100
  140.         FGet 7, INTEGER020
  141.         TINTEGER019(INTEGER028) = INTEGER020
  142.     Next
  143.     FClose 7
  144.     If (Exist(PPEPath() + "INFO.log")) Goto LABEL003
  145.     FOpen 6, PPEPath() + "INFO.log", 2, 0
  146.     Goto LABEL004
  147.     :LABEL003
  148.     FAppend 6, PPEPath() + "INFO.log", 2, 0
  149.     :LABEL004
  150.     FGet 3, STRING016
  151.     INTEGER028 = 1
  152.     INTEGER027 = InStr(STRING016, ",")
  153.     While ((Left(STRING016, 1) <> " ") && (INTEGER027 > 0)) Do
  154.         INTEGER027 = InStr(STRING016, ",")
  155.         TINTEGER023(INTEGER028) = ToInteger(Mid(STRING016, 1, INTEGER027))
  156.         STRING016 = Mid(STRING016, INTEGER027 + 1, 100)
  157.         INTEGER024 = INTEGER028
  158.         INTEGER028 = INTEGER028 + 1
  159.     EndWhile
  160.     FGet 3, STRING017
  161.     INTEGER026 = ToInteger(STRING017)
  162.     INTEGER022 = 1
  163.     INTEGER001 = 1
  164.     INTEGER025 = 0
  165.     If (BOOLEAN003) Then
  166.         PROC003()
  167.     Else
  168.         PROC004()
  169.     Endif
  170.     For INTEGER004 = 1 To INTEGER024
  171.         INTEGER001 = 1
  172.         INTEGER003 = TINTEGER023(INTEGER004)
  173.         PROC001()
  174.         FOpen 1, PPEPath() + "holdmsg.txt", 2, 0
  175.         :LABEL005
  176.         If (Ferr(1)) Goto LABEL006
  177.         FGet 1, STRING002
  178.         If ((InStr(STRING002, "From") > 0) || (InStr(STRING002, "Subject:") > 0)) Then
  179.             If (InStr(STRING002, "From") > 0) FPutLn 2, ""
  180.             If (InStr(STRING002, "From") > 0) FPutLn 2, "Local :" + String(INTEGER003)
  181.             FPutLn 2, STRING002
  182.         Endif
  183.         Goto LABEL005
  184.         :LABEL006
  185.         FClose 1
  186.         Delete PPEPath() + "holdmsg.txt"
  187.     Next
  188.     INTEGER004 = INTEGER004 - 1
  189.     INTEGER003 = INTEGER026
  190.     INTEGER001 = 1
  191.     PROC001()
  192.     FOpen 1, PPEPath() + "holdmsg.txt", 2, 0
  193.     :LABEL007
  194.     If (Ferr(1)) Goto LABEL008
  195.     FGet 1, STRING002
  196.     If ((InStr(STRING002, "FROM") == 1) || (InStr(STRING002, "Subject:") == 1)) Then
  197.         If (InStr(STRING002, "FROM") == 1) FPutLn 2, ""
  198.         If (InStr(STRING002, "FROM") == 1) FPutLn 2, "E-MAIL :" + String(15)
  199.         FPutLn 2, STRING002
  200.     Endif
  201.     Goto LABEL007
  202.     :LABEL008
  203.     FClose 1
  204.     FClose 2
  205.     FOpen 2, PPEPath() + "HOLD2.txt", 2, 0
  206.     INTEGER025 = 0
  207.     :LABEL009
  208.     If (Ferr(2)) Goto LABEL010
  209.     FGet 2, STRING002
  210.     If (InStr(STRING002, "Local") > 0) Then
  211.         INTEGER027 = InStr(STRING002, ":") + 1
  212.         STRING005 = Mid(STRING002, INTEGER027, 4)
  213.         FGet 2, STRING003
  214.         INTEGER027 = InStr(STRING003, ":") + 2
  215.         STRING003 = Mid(STRING003, INTEGER027, 50)
  216.         FGet 2, STRING004
  217.         INTEGER027 = InStr(STRING004, ":") + 2
  218.         STRING004 = Mid(STRING004, INTEGER027, 50)
  219.         PROC002()
  220.     Endif
  221.     Goto LABEL009
  222.     :LABEL010
  223.     FClose 2
  224.     FOpen 2, PPEPath() + "HOLD2.txt", 2, 0
  225.     INTEGER025 = 15
  226.     :LABEL011
  227.     If (Ferr(2)) Goto LABEL012
  228.     FGet 2, STRING002
  229.     If (InStr(STRING002, "E-MAIL") > 0) Then
  230.         INTEGER027 = InStr(STRING002, ":") + 1
  231.         STRING005 = Mid(STRING002, INTEGER027, 4)
  232.         FGet 2, STRING003
  233.         INTEGER027 = InStr(STRING003, ":") + 1
  234.         STRING003 = Mid(STRING003, INTEGER027, 100)
  235.         INTEGER027 = InStr(STRING003, "!") + 1
  236.         STRING003 = Mid(STRING003, INTEGER027, 100)
  237.         INTEGER027 = InStr(STRING003, "!") + 1
  238.         STRING014 = Mid(STRING003, INTEGER027, 25)
  239.         STRING014 = RTrim(STRING014, " ")
  240.         STRING015 = "@" + Left(STRING003, INTEGER027 - 2)
  241.         STRING003 = STRING014 + STRING015
  242.         FGet 2, STRING004
  243.         INTEGER027 = InStr(STRING004, ":") + 2
  244.         STRING004 = Mid(STRING004, INTEGER027, 50)
  245.         PROC002()
  246.     Endif
  247.     Goto LABEL011
  248.     :LABEL012
  249.     FOpen 7, PPEPath() + "lmsgr.txt", 2, 0
  250.     For INTEGER028 = 0 To 100
  251.         FPutLn 7, TINTEGER019(INTEGER028)
  252.     Next
  253.     FCloseAll
  254.     Delete PPEPath() + "TEMP1.TXT"
  255.     Delete PPEPath() + "TEMP2.TXT"
  256.     Delete PPEPath() + "hold2.TXT"
  257.     Delete PPEPath() + "holdmsg.TXT"
  258.     Delete PPEPath() + "info.bak"
  259.     Log "@X0BVWINFO has completed processing on : " + String(Date()) + " at " + String(Time()), 1
  260.     End
  261.  
  262. ;------------------------------------------------------------------------------
  263.  
  264.     Procedure PROC001()
  265.  
  266.     INTEGER022 = TINTEGER019(INTEGER003)
  267.     While (INTEGER001 > 0) Do
  268.         INTEGER001 = ScanMsgHdr(INTEGER003, INTEGER022, 7, STRING001)
  269.         If (INTEGER001 > 0) TINTEGER019(INTEGER003) = INTEGER001 + 1
  270.         MsgToFile INTEGER003, INTEGER001, PPEPath() + "holdmsg.txt"
  271.         If (BOOLEAN002 == 1) KillMsg INTEGER003, INTEGER001
  272.         INTEGER022 = INTEGER001 + 1
  273.     EndWhile
  274.  
  275.     EndProc
  276.  
  277.  
  278. ;------------------------------------------------------------------------------
  279.  
  280.     Procedure PROC002()
  281.  
  282.     If (ToInteger(STRING005) == INTEGER026) Then
  283.         BOOLEAN001 = 1
  284.     Else
  285.         BOOLEAN001 = 0
  286.     Endif
  287.     STRING004 = Upper(RTrim(STRING004, " "))
  288.     STRING006 = TSTRING012(0)
  289.     For INTEGER028 = 1 To INTEGER029
  290.         If (TSTRING013(INTEGER028) == STRING004) STRING006 = TSTRING012(INTEGER028)
  291.     Next
  292.     Copy PPEPath() + STRING006, PPEPath() + "temp2.txt"
  293.     Append PPEPath() + "temp1.txt", PPEPath() + "temp2.txt"
  294.     STRING003 = RTrim(STRING003, " ")
  295.     STRING003 = LTrim(STRING003, " ")
  296.     If (BOOLEAN003) Then
  297.         FPutLn 6, "**** "
  298.         FPutLn 6, String(Date()) + "  " + String(Time())
  299.         FPutLn 6, "IN CONF:" + STRING005 + "  SENT TO:" + STRING003 + "   FILE : " + STRING006
  300.     Endif
  301.     Message ToInteger(STRING005), STRING003, STRING001, STRING004, "R", DATE001, 0, BOOLEAN001, PPEPath() + "temp2.txt"
  302.     Delete PPEPath() + "TEMP2.txt"
  303.  
  304.     EndProc
  305.  
  306.  
  307. ;------------------------------------------------------------------------------
  308.  
  309.     Procedure PROC003()
  310.  
  311.     INTEGER002 = 0
  312.     :LABEL013
  313.     If (Ferr(3)) Goto LABEL014
  314.     FGet 3, TSTRING012(INTEGER002)
  315.     INTEGER027 = InStr(TSTRING012(INTEGER002), ":")
  316.     TSTRING013(INTEGER002) = Upper(Left(TSTRING012(INTEGER002), INTEGER027 - 1))
  317.     TSTRING012(INTEGER002) = Mid(TSTRING012(INTEGER002), INTEGER027 + 1, 12)
  318.     INTEGER002 = INTEGER002 + 1
  319.     Goto LABEL013
  320.     :LABEL014
  321.     INTEGER029 = INTEGER002 - 1
  322.  
  323.     EndProc
  324.  
  325.  
  326. ;------------------------------------------------------------------------------
  327.  
  328.     Procedure PROC004()
  329.  
  330.     INTEGER002 = 0
  331.     For INTEGER021 = 1 To 2
  332.         FGet 3, TSTRING012(INTEGER002)
  333.         INTEGER027 = InStr(TSTRING012(INTEGER002), ":")
  334.         TSTRING013(INTEGER002) = Upper(Left(TSTRING012(INTEGER002), INTEGER027 - 1))
  335.         TSTRING012(INTEGER002) = Mid(TSTRING012(INTEGER002), INTEGER027 + 1, 12)
  336.         INTEGER002 = INTEGER002 + 1
  337.     Next
  338.     INTEGER029 = INTEGER002 - 1
  339.  
  340.     EndProc
  341.  
  342.  
  343. ;------------------------------------------------------------------------------
  344.  
  345.     Procedure PROC005()
  346.  
  347.     STRING026 = ReadLine(PCBDat(), 94)
  348.     INTEGER016 = 7
  349.     INTEGER017 = 21
  350.     INTEGER018 = 14
  351.     INTEGER013 = Asc(Mid(STRING010, 1, 1))
  352.     INTEGER005 = Asc(Mid(STRING010, 4, 1))
  353.     INTEGER015 = Asc(Mid(STRING010, 9, 1))
  354.     INTEGER014 = Asc(Mid(STRING010, 5, 1))
  355.     INTEGER008 = INTEGER013 + INTEGER005 + INTEGER015 + INTEGER014
  356.     INTEGER011 = Asc(Mid(STRING011, 1, 1))
  357.     INTEGER012 = Asc(Mid(STRING011, 3, 1))
  358.     INTEGER007 = Asc(Mid(STRING011, 7, 1))
  359.     INTEGER010 = Asc(Mid(STRING011, 9, 1))
  360.     INTEGER009 = INTEGER011 + INTEGER012 + INTEGER007 + INTEGER010
  361.     INTEGER008 = ((INTEGER008 + 3843) / INTEGER005) * INTEGER016
  362.     INTEGER009 = ((INTEGER009 + 89617) / INTEGER017) * INTEGER014
  363.     INTEGER009 = (INTEGER009 + 2155) / INTEGER018
  364.     INTEGER006 = ((INTEGER009 + 774325) / INTEGER016) * INTEGER007
  365.     INTEGER007 = (INTEGER007 + 465222) / 3
  366.     INTEGER007 = INTEGER007 * INTEGER017
  367.     STRING019 = String(INTEGER007) + String(INTEGER010)
  368.     STRING020 = String(INTEGER006) + String(INTEGER008)
  369.     STRING021 = String(INTEGER008) + String(INTEGER007)
  370.     STRING022 = Mid(STRING019, 2, 2) + Mid(STRING021, 4, 2)
  371.     STRING023 = Mid(STRING020, 3, 1) + Mid(STRING021, 3, 3)
  372.     STRING024 = Mid(STRING019, 4, 1) + Mid(STRING020, 3, 1)
  373.     STRING025 = STRING022 + STRING023 + STRING024
  374.     If ((STRING025 == STRING018) && (STRING011 == STRING026)) Then
  375.         BOOLEAN003 = 1
  376.     Else
  377.         BOOLEAN003 = 0
  378.     Endif
  379.  
  380.     EndProc
  381.  
  382.  
  383. ;------------------------------------------------------------------------------
  384. ;
  385. ; Usage report (before postprocessing)
  386. ;
  387. ; ■ Statements used :
  388. ;
  389. ;    1       End
  390. ;    41      Goto 
  391. ;    122     Let 
  392. ;    2       PrintLn 
  393. ;    32      If 
  394. ;    10      FOpen 
  395. ;    1       FAppend 
  396. ;    6       FClose 
  397. ;    20      FGet 
  398. ;    14      FPutLn 
  399. ;    9       Delete 
  400. ;    1       Log 
  401. ;    2       Delay 
  402. ;    1       Message 
  403. ;    1       Append 
  404. ;    1       Copy 
  405. ;    1       FCloseAll
  406. ;    5       EndProc
  407. ;    1       MsgToFile 
  408. ;    1       KillMsg 
  409. ;
  410. ;
  411. ; ■ Functions used :
  412. ;
  413. ;    4       *
  414. ;    5       /
  415. ;    85      +
  416. ;    11      -
  417. ;    10      ==
  418. ;    2       <>
  419. ;    5       <
  420. ;    5       <=
  421. ;    9       >
  422. ;    10      >=
  423. ;    23      !
  424. ;    12      &&
  425. ;    7       ||
  426. ;    3       Upper()
  427. ;    26      Mid()
  428. ;    10      Left()
  429. ;    5       Ferr()
  430. ;    8       Asc()
  431. ;    27      InStr()
  432. ;    1       LTrim()
  433. ;    7       RTrim()
  434. ;    3       Date()
  435. ;    2       Time()
  436. ;    12      String()
  437. ;    1       PCBDat()
  438. ;    27      PPEPath()
  439. ;    1       ReadLine()
  440. ;    1       Exist()
  441. ;    4       ToInteger()
  442. ;    1       ScanMsgHdr()
  443. ;
  444. ;------------------------------------------------------------------------------
  445. ;
  446. ; Analysis flags : d
  447. ;
  448. ; d - Access PCBOARD.DAT ■ 2
  449. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  450. ;     for many PPE so they can find various informations on the system
  451. ;     (system paths, max number of lines in messages, ...) but it may also
  452. ;     be a way to gather vital informations.
  453. ;     ■ Search for : PCBDAT()
  454. ;
  455. ;------------------------------------------------------------------------------
  456. ;
  457. ; Postprocessing report
  458. ;
  459. ;    5       For/Next
  460. ;    2       While/EndWhile
  461. ;    9       If/Then or If/Then/Else
  462. ;    0       Select Case
  463. ;
  464. ;------------------------------------------------------------------------------
  465. ;                 AEGiS Corp - Break the routines, code against the machines!
  466. ;------------------------------------------------------------------------------
  467.